/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.dao;

import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceException;
import javax.persistence.Query;
import model.dominio.Funcionario;

/**
 *
 * @author Leandro
 */
public class DaoFuncionario extends DaoPessoa {

    public DaoFuncionario() {
        super();
    }

    /**
     * 
     * @author Leandro
     * @param funcionario Funcionário contendo os filtros de busca informados.
     * @return Funcionário ou lista de funcionários com as informações da busca 
     * ou null, caso não exista no bando de dados.
     */
    public List<Funcionario> buscarFuncionarios(Funcionario funcionario) {
        EntityManager em = super.getEntityManager();
        try {
            String strSQL = "SELECT f FROM Funcionario f ";
            if (funcionario.getCpf() != null) {
                strSQL += "WHERE f.cpf='" + funcionario.getCpf() + "' ";
            } else if (funcionario.getNome() != null) {
                strSQL += "WHERE f.nome LIKE '" + funcionario.getNome() + "%' ";
            }
            strSQL += "ORDER BY NOME ASC";
            em.getTransaction().begin();
            Query query = em.createQuery(strSQL);
            return (List<Funcionario>) query.getResultList();
        } catch (PersistenceException e) {
            return null;
        } finally {
            em.close();
        }
    }
}
